Mã cho giải pháp quy hoạch động Bài toán chuỗi con chung dài nhất

Tính độ dài của LCS

Hàm bên dưới nhận như chuỗi đầu vào X[1..m]Y[1..n], tính LCS giữa X[1..i]Y[1..j] cho tất cả 1 ≤ i ≤ m1 ≤ j ≤ n, và lưu trữ nó trong C[i,j]. C[m,n] sẽ chứa độ dài LCS của XY

function LCSLength(X[1..m], Y[1..n])  C = array(0..m, 0..n)  for i:= 0..m    C[i, 0] = 0  for j:= 0..n    C[0, j] = 0  for i:= 1..m    for j:= 1..n      if X[i] = Y[j]        C[i, j]:= C[i-1, j-1] + 1      else        C[i, j]:= max(C[i, j-1], C[i-1, j])  return C[m, n]